5 IFPEEK(51200)<>76ORPEEK(52016)<>32THEN7 6 IFPEEK(52080)=173ANDPEEK(52176)=169THEN8 7 LOAD"ROUTINES V4",8,1 8 POKEV+33,1:Q$=CHR$(34) 10 R=53265:C=128:V=53248:S=V+1024:LI=52016:WI=51200:CL=51203:SU=51206:SD=51209 12 POKES+23,.:POKES+4,128:POKEV+32,14 15 GOSUB1000:PRINT" [215]ELCOME TO THE FIFTH CHAPTER OF" 16 PRINT"[204]OADSTAR'S [195][207][205][193][204][160]0.14 [212]UTORIAL. [201]N 17 [153]"THE PREVIOUS CHAPTER, WE CONVERTED OUR 18 PRINT"NOW-FAMILIAR [195]ELSIUS PROGRAM INTO A 19 [153]"ASC(null)(null)LENTION, AS WELL AS LEARNED ABOUT THE 20 PRINT"[201]MMEDIATE [205]ODE AND OTHER CONCEPTS. [201]F 21 [153]"YOU ARE UNSURE OF ANY OF THESE, YOU 22 PRINT"MAY WISH TO [211][212][207][208] THIS LESSON NOW AND 23 [153]"TAKE A PREVIOUS LESSON OR THREE BEFORE 24 PRINT"RETURNING HERE.":GOSUB1200 25 PRINT" [201]N THIS CHAPTER, WE WILL EXPAND ON 26 [153]"OUR KNOWLEDGE OF ASC(null)(null)LENTIONS, AND ALSO 27 PRINT"INTRODUCE SOME OTHER KINDS OF [208][210][207][199][210][193][205]- 28 [153]"(null)RIGHT$(null)CHR$CLOSE(null)(null)(null)(null)LEN(null)(null)(null)VAL(null). ASCIRST, LET'S (null)(null)ATNSTR$ 29 PRINT"OUR WORK OF LAST INSTALLMENT: 30 [153]" (null)(null)ATNSTR$ "Q$"LEN.ASC.LENVAL(null)(null)RIGHT$(null)(null)"Q$" 34 GOSUB1160:X%=.:Y%=14:GOSUB1110:PRINT"9902 [194][217][212][197][211][160][198][210][197][197]." 35 GOSUB1300:X%=.:Y%=16:A$="[204][207][193][196] "+Q$+"[195].[198].[195][197][204][211][201][213][211]"+Q$:GOSUB1600 36 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO36 37 GOSUB1500:IFK$<>CHR$(13)THEN37 38 S=5:GOSUB2000:GOSUB1035:GOSUB1150 39 PRINT"[144][146][196]ONE! [199]UESS WHAT WE'RE GONNA DO NEXT?":GOSUB1205 40 PRINT" [210]IGHT! [217]OU'RE GONNA [204][201][211][212] IT: 45 [141]1160:[141]1300:X%[178].:Y%[178]18:A$[178]"(null)RIGHT$(null)(null)":[141]1600 46 [139]E[167]A$[178][202](A$,E):E[178].:[141]1605:[137]46 47 [141]1500:[139]K$[179][177][199](13)[167]47 48 [153]:[153]"0010 ASC(null)(null)LENCLOSELENVAL(null)(null)RIGHT$(null)(null)(ASCATN(null)VAL(null)LEFT$VALRIGHT$(null))":[153]"0020 (null)VAL(null)(null)(null)(null)CLOSE(ASCATN(null)VAL(null)LEFT$VALRIGHT$(null)-32)*(5/9) 49 PRINT"0030 [197][206][196][198][213][206][195][160][195][197][204][211][201][213][211]":GOSUB1150 50 PRINT"[144] [199]OOD! [201]T STILL SEEMS TO BE THERE: 51 [153]"THE ASC(null)(null)LEN STATEMENT IN LINE 10 WHICH 52 PRINT"NAMES THE [198][213][206][195]TION AND SPECIFIES THE 53 [153]"ARGUMENT, THE (null)VAL(null)(null)(null)(null) STATEMENT IN LINE 54 PRINT"20 WHICH SPECIFIES HOW TO COMPUTE THE 55 [153]"VALUE OF THE ASC(null)(null)LENTION GIVEN THE ARGU- 56 PRINT"MENT, AND THE [197][206][196][198][213][206][195] IN LINE 30 WHICH 57 [153]"MARKS THE END OF THE ASC(null)(null)LENTION.":[141]1205 60 [153]" (null)AST ISSUE, WE MENTIONED THAT A 61 PRINT"[198][213][206][195]TION MUST HAVE [193][212][160][204][197][193][211][212][160][207][206][197][160][210][197][212][213][210][206] 62 [153]"STATEMENT. (null)HEN MIGHT A ASC(null)(null)LENTION NEED 63 PRINT"MORE THAN 1? [193] [198][213][206][195]TION CAN'T [210][197][212][213][210][206] 64 [153]"MORE THAN 1 VALUE PER CALL! (null)ELL, RIGHT$ 65 PRINT"WILL SHOW YOU AN EXAMPLE LATER, BUT 66 [153]"FIRST, WE'LL NEED TO EXPERIMENT SOME 67 PRINT"MORE WITH [201]MMEDIATE MODE, AND LEARN A 68 [153]"NEW CONCEPT OR 3. (null)HEN, WE'LL USE 69 PRINT"THOSE CONCEPTS IN A NEW [198][213][206][195]TION!":GOSUB1200 70 PRINT" [198]ROM OUR EXPERIMENTS, YOU KNOW THAT 71 [153]"THE SYMBOLS '+', '-', '*' AND '/' MEAN 72 PRINT"ADDITION, SUBTRACTION, MULTIPLICATION 73 [153]"AND DIVISION, RESPECTIVELY. (null)UCH SYM- 74 PRINT"BOLS USED IN AN EXPRESSION ARE CALLED 75 [153]"(null)(null)VAL(null)ATN(null)(null)(null)(null). (null)HE VALUES THEY OPERATE ON 76 PRINT"ARE CALLED [207][208][197][210][193][206][196][211]. [215]HAT THEY DO 77 [153]"WITH THE OPERANDS IS CALLED AN (null)(null)VAL(null)ATN- 78 PRINT"[212][201][207][206]. [195]LEAR AS MUD, RIGHT? [193]LLOW ME 79 [153]"TO USE AN EXAMPLE:":[141]1200 80 [153]" CHR$IVEN THE EXPRESSION '5/9', THE (null)(null)- 81 PRINT"[197][210][193][212][207][210] IS '/', THE [207][208][197][210][193][206][196]S ARE '5' & 82 [153]"'9', AND THE (null)(null)VAL(null)ATN(null)RIGHT$(null)(null)CLOSEIS DIVISION. 83 PRINT" [200]ERE IS A MORE COMPLEX EXPRESSION: 84 [153]"'(ASCATN(null)VAL(null)LEFT$VALRIGHT$(null)-32)*(5/9)'. RIGHT$T HAS 3 OP- 85 PRINT"ERATIONS: '[198][193][210][197][206][200][197][201][212]-32', '5/9' & THE 86 [153]"PRODUCT OF THE RESULTS OF THOSE TWO. 87 PRINT"[212]HUS, THE RESULT OF AN OPERATION CAN 88 [153]"BE AN OPERAND OF ANOTHER OPERATION!":[141]1200 90 [153]" RIGHT$N THE CASE '(ASCATN(null)VAL(null)LEFT$VALRIGHT$(null)-32)*(5/9)', 91 PRINT"THE OPERATOR IS '*', THE OPERANDS ARE 92 [153]"THE RESULTS OF 'ASCATN(null)VAL(null)LEFT$VALRIGHT$(null)-32' &CLOSE'5/9', 93 PRINT"AND THE OPERATION IS MULTIPLICATION. 94 [153]"(null)E ALREADY DID '5/9', SO THAT LEAVES 95 PRINT"'[198][193][210][197][206][200][197][201][212]-32'. [212]HE OPERATOR IS '-', 96 [153]"THE OPERANDS ARE THE VALUE OF THE VAR- 97 PRINT"IABLE '[198][193][210][197][206][200][197][201][212]' &[160]'32', AND THE OP- 98 [153]"ERATION IS SUBTRACTION. (null)ARENTHESES 99 PRINT"SEPARATE OPERATIONS.":GOSUB1200 100 PRINT" [193]RE THERE ANY MORE OPERATORS BE- 101 [153]"SIDES THE FOUR ARITHMETIC ONES? (null)ES, 102 PRINT"THERE IS '^', WHICH MEANS 'EXPONENTI- 103 [153]"ATION', OR 'RAISING TO A POWER'. (null)OT 104 PRINT"ONLY THAT, BUT '+' AND '-' CAN MEAN 105 [153]"OTHER THINGS BESIDES ADDITION AND SUB- 106 PRINT"TRACTION. [201]F THEY HAVE ONLY ONE OPER- 107 [153]"AND (AFTER THE OPERATOR), THEY MEAN 108 PRINT"'IDENTITY'[160](NO CHANGE) AND 'NEGATION' 109 [153]"(CHANGE SIGN), RESPECTIVELY.":[141]1200 110 [153]" '+' EVEN HAS ANOTHER MEANING, WHICH 111 PRINT"WE'LL COVER IN A FUTURE INSTALLMENT. 112 [153]" (null)ET'S EXPERIMENT WITH A NEW CLASS 113 PRINT"OF OPERATORS. [212]YPE THIS: 114 [153]" (null)(null)RIGHT$(null)(null)CLOSE2=2 115 GOSUB1160:GOSUB1300:X%=.:Y%=23:A$="[208][210][201][206][212] 2=2":GOSUB1600 116 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO116 117 GOSUB1500:IFK$<>CHR$(13)THEN117 118 PRINT:PRINT"1";:GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[145][144] 119 [153]" (null)AY (null)LEFT$ATN(null)!? (null)ET'S TRY ANOTHER. . .":[141]1205 120 [153]" (null)YPE: (null)(null)RIGHT$(null)(null)CLOSE2=3 125 GOSUB1160:GOSUB1300:X%=.:Y%=24:A$="[208][210][201][206][212] 2=3":GOSUB1600 126 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO126 127 GOSUB1500:IFK$<>CHR$(13)THEN127 128 GOSUB1700:PRINT"0";:GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[145][144] 130 [153]"LEFT$MMM . . . '2=2' IS 1, AND '2=3' IS 0. 131 PRINT"[211]EEMS TO BE A PATTERN HERE. [212]YPE: 132 [153]" (null)(null)RIGHT$(null)(null)CLOSE2<3 135 GOSUB1160:X%=.:Y%=24:A$="[208][210][201][206][212] 2<3":GOSUB1600 136 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO136 137 GOSUB1500:IFK$<>CHR$(13)THEN137 138 GOSUB1700:PRINT"1";:GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[145][144] 140 [153]" RIGHT$NTERESTING! ASCROM (null)ATH CLASS, YOU 141 PRINT"MAY REMEMBER THAT '=' MEANS 'IS EQUAL 142 [153]"TO', AND '<' MEANS 'IS LESS THAN'!":[141]1205 145 [153]" RIGHT$T SEEMS THAT WITH AN EXPRESSION 146 PRINT"WHICH COULD ONLY BE [212][210][213][197] OR [198][193][204][211][197], [195][207]- 147 [153]"(null)ATN(null)CLOSERETURNS '1' FOR (null)(null)(null)VALCLOSEAND '0' FOR 148 PRINT"[198][193][204][211][197]. [207]PERATORS SUCH AS '=' AND '<', 149 [153]"WHICH RETURN THE TRUTH OF RELATION- 150 PRINT"SHIPS (SUCH AS 'IS EQUAL TO' OR 'IS 151 [153]"LESS THAN') BETWEEN THEIR OPERANDS, 152 PRINT"ARE CALLED [210][197][204][193][212][201][207][206][193][204][160][207][208][197][210][193][212][207][210][211].":GOSUB1200 155 PRINT" [200]ERE ARE SOME OF THESE [210][197][204][193][212][201][207][206][193][204] 156 [153]"(null)(null)VAL(null)ATN(null)(null)(null)(null): 157 PRINT" '=' ([201]S [197]QUAL [212]O) 158 [153]" '<' (RIGHT$S (null)ESS (null)HAN) 159 PRINT" '>' ([201]S [199]REATER [212]HAN) 160 [153]" '<=' (RIGHT$S (null)ESS (null)HAN OR VALQUAL (null)O) 161 PRINT" '>=' ([201]S [199]REATER [212]HAN OR [197]QUAL [212]O) 162 [153]" '<>' (RIGHT$S (null)ESS (null)HAN OR CHR$REATER (null)HAN, 163 PRINT" I.E. [201]S [206]OT [197]QUAL [212]O)":GOSUB1200 203 PRINT" [212]HE RESULT OF A RELATIONAL OPERA- 204 [153]"TION IS ALWAYS EITHER '1'CLOSE((null)(null)(null)VAL) OR 205 PRINT"'0'[160]([198][193][204][211][197]). 206 [153]" (null)HESE RELATIONAL OPERATORS CAN EACH 207 PRINT"HAVE ANOTHER MEANING IN A DIFFERENT 208 [153]"SITUATION WHICH WE'LL COVER IN A LATER 209 PRINT"LESSON, ALONG WITH ANOTHER RELATIONAL 210 [153]"OPERATOR WE HAVEN'T 'MET' YET.":[141]1200 211 [153]" (null)NCE WE KNOW THE TRUTH OR FALSEHOOD 212 PRINT"ABOUT A RELATIONSHIP BETWEEN 2 VALUES, 213 [153]"HOW CAN WE USE THAT INFORMATION? (null)NE 214 PRINT"WAY IS TO USE THE [201][198][160]STRUCTURE. [212]HE 215 [153]"RIGHT$ASC STRUCTURE CONSISTS OF 1 'RIGHT$ASC' STATE- 216 PRINT"MENT, 0 OR MORE [195][207][205][193][204] STATEMENTS, 0 OR 217 [153]"MORE 'VAL(null)RIGHT$ASC'CLOSE(VAL(null)(null)VALCLOSERIGHT$ASC) STATEMENTS EACH 218 PRINT"WITH 0 OR MORE [195][207][205][193][204] STATEMENTS, AN 219 [153]"OPTIONAL 'VAL(null)(null)VAL'CLOSESTATEMENT WITH 0 OR 220 PRINT"MORE [195][207][205][193][204][160]STATEMENTS, AND 1 '[197][206][196][201][198]'.":GOSUB1200 221 PRINT" [212]HE '[201][198]' AND '[197][204][201][198]' STATEMENTS MUST 222 [153]"CONTAIN A NUMERIC EXPRESSION, WHICH 223 PRINT"USUALLY WILL CONTAIN AT LEAST 1 RELA- 224 [153]"TIONAL OPERATION. 225 PRINT" [212]HE '[201][198]' STRUCTURE IS 1 OF 2 [195][207][206][196][201]- 226 [153]"(null)RIGHT$(null)(null)ATN(null)CLOSE(null)(null)(null)(null)LEN(null)(null)(null)VAL(null) IN LEN(null)(null)ATN(null). (null)HERE IS 227 PRINT"ANOTHER TYPE OF STRUCTURE CALLED [204][207][207][208]- 228 [153]"RIGHT$(null)CHR$CLOSE(null)(null)(null)(null)LEN(null)(null)(null)VAL(null), OF WHICH THERE ARE 3 229 PRINT"VARIATIONS.":GOSUB1200 230 PRINT" [212]HE LOOPING STRUCTURE WE WILL LOOK 231 [153]"AT RIGHT NOW IS THE '(null)VAL(null)VALATN(null)' STRUC- 232 PRINT"TURE. [201]T HAS 1 '[210][197][208][197][193][212]'[160]STATEMENT, 233 [153]"0 OR MORE LEN(null)(null)ATN(null) STATEMENTS, AND AN 234 PRINT"'[213][206][212][201][204]'[160]STATEMENT IN THAT ORDER. [212]HE 235 [153]"'(null)(null)(null)RIGHT$(null)'CLOSESTATEMENT, LIKE 'RIGHT$ASC' AND 236 PRINT"'[197][204][201][198]', HAS A NUMERIC (USUALLY RELA- 237 [153]"TIONAL) EXPRESSION. (null)HE LEN(null)(null)ATN(null) STATE- 238 PRINT"MENTS ARE [210][197][208][197][193][212]ED [213][206][212][201][204][160]THE EXPRES- 239 [153]"SION BECOMES (null)(null)(null)VAL.":[141]1200 240 [153]" (null)ET'S USE THE (null)VAL(null)VALATN(null) STRUCTURE IN A 241 PRINT"NEW [198][213][206][195]TION. [217]OU MAY REMEMBER SOME- 242 [153]"THING CALLED ASCACTORIAL FROM ATNLGEBRA. 243 PRINT"[215]RITTEN AS A NUMBER FOLLOWED BY AN EX- 244 [153]"CLAMATION POINT ('!'), ASCACTORIAL IS AN 300 PRINT"IMPORTANT [198][213][206][195]TION IN PROBABILITY 301 [153]"MATH. (null)HE ASCACTORIAL OF A POSITIVE IN- 302 PRINT"INTEGER IS THAT INTEGER TIMES ALL THE 303 [153]"POSITIVE INTEGERS LESS THAN ITSELF. 304 PRINT"[212]HUS, 4! = 4*3*2*1 = 24.":GOSUB1200 305 PRINT" [210]EADY? [199]OOD! [204]ET'S FIRST CLEAR 306 [153]"MEMORY. (null)SE THE '(null)VAL(null)'CLOSECOMMAND: 307 GOSUB1160:GOSUB1300:X%=.:Y%=24:A$="[206][197][215]":GOSUB1600 308 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO308 309 GOSUB1500:IFK$<>CHR$(13)THEN309 310 GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[145][144] 311 [153]" (null)ERY GOOD! (null)OW TYPE AN 'ATN(null)(null)(null)' COM- 312 PRINT"MAND, SO YOU'LL GET AUTOMATIC LINE 313 [153]"NUMBERS: 314 GOSUB1160:X%=.:Y%=24:A$="[193][213][212][207]":GOSUB1600 315 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO315 316 GOSUB1500:IFK$<>CHR$(13)THEN316 317 GOSUB1700:PRINT"[145]":PRINT"0010";:GOSUB1035:GOSUB1150:PRINT"[145][144] 318 [153]" (null)N THE NEXT PAGE, YOU'LL FIND SOME 319 PRINT"LINES TO TYPE. [196][207][160][206][207][212][160][212][217][208][197][160][212][200][197][160][204][201][206][197] 320 [153]"(null)(null)(null)PEEKVAL(null)(null)! 'ATN(null)(null)(null)' DOES THAT FOR YOU!":[141]1205 321 [153]"0010 ASC(null)(null)LENCLOSEASCATNLEN(null)(null)(null)RIGHT$ATN(null)((null)) 322 PRINT"0020 [198]:=[206] 323 [153]"0030 (null)VAL(null)VALATN(null) 324 PRINT"0040 [206]:=[206]-1 325 [153]"0050 ASC:=ASC*(null) 326 PRINT"0060 [213][206][212][201][204][160][206]<2 327 [153]"0070 (null)VAL(null)(null)(null)(null)CLOSEASC 328 PRINT"0080 [197][206][196][198][213][206][195][160][198][193][195][212][207][210][201][193][204] 329 [153]"0090 (LEFT$IT [(null)VAL(null)(null)(null)(null)]CLOSENOW TO STOP 'ATN(null)(null)(null)') 330 GOSUB1160:GOSUB1300:X%=5:Y%=24:A$="[198][213][206][195] [198][193][195][212][207][210][201][193][204]([206])":GOSUB1600 331 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO331 332 GOSUB1500:IFK$<>CHR$(13)THEN332 333 GOSUB1700:PRINT"[145]":PRINT"0020"; 334 X%=5:Y%=24:A$=" [198]:=[206]":GOSUB1600 335 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO335 336 GOSUB1500:IFK$<>CHR$(13)THEN336 337 GOSUB1700:PRINT"[145]":PRINT"0030"; 338 X%=5:Y%=24:A$=" [210][197][208][197][193][212]":GOSUB1600 339 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO339 340 GOSUB1500:IFK$<>CHR$(13)THEN340 341 GOSUB1700:PRINT"[145]":PRINT"0040"; 342 X%=5:Y%=24:A$=" [206]:=[206]-1":GOSUB1600 343 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO343 344 GOSUB1500:IFK$<>CHR$(13)THEN344 345 GOSUB1700:PRINT"[145]":PRINT"0050"; 346 X%=5:Y%=24:A$=" [198]:=[198]*[206]":GOSUB1600 347 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO347 348 GOSUB1500:IFK$<>CHR$(13)THEN348 349 GOSUB1700:PRINT"[145]":PRINT"0060"; 350 X%=5:Y%=24:A$=" [213][206][212][201][204] [206]<2":GOSUB1600 351 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO351 352 GOSUB1500:IFK$<>CHR$(13)THEN352 353 GOSUB1700:PRINT"[145]":PRINT"0070"; 354 X%=5:Y%=24:A$=" [210][197][212][213][210][206] [198]":GOSUB1600 355 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO355 356 GOSUB1500:IFK$<>CHR$(13)THEN356 357 GOSUB1700:PRINT"[145]":PRINT"0080"; 358 X%=5:Y%=24:A$="[197][206][196][198][213][206][195] [198][193][195][212][207][210][201][193][204]":GOSUB1600 359 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO359 360 GOSUB1500:IFK$<>CHR$(13)THEN360 361 GOSUB1700:PRINT"[145]":PRINT"0090";:X%=5:Y%=24 362 GOSUB1500:IFK$<>CHR$(13)THEN362 363 GOSUB1700:GOSUB1035:GOSUB1160:GOSUB1400:PRINT" [193]LL [210][201][199][200][212]! [217]OU ENTERED IN A [195][207][205][193][204] 364 [153]"ASC(null)(null)LENTION WITH LITTLE HELP FROM ME! 365 PRINT" [217]OU MAY REMEMBER THAT [195][207][205][193][204][160]WILL 366 [153]"PUT IN THE INDENTATION FOR YOU AUTOMA- 367 PRINT"TICALLY, BUT [201] WANTED YOU TO DO IT FOR 368 [153]"YOURSELF FOR THE TIME BEING. ATNNYWAY, 369 PRINT"YOU CAN SEE THAT ONE STRUCTURE, A [210][197]- 370 [153]"(null)VALATN(null)/(null)(null)(null)RIGHT$(null) STRUCTURE, IS NESTED WITHIN 371 PRINT"ANOTHER, A [198][213][206][195]/[210][197][212][213][210][206]/[197][206][196][198][213][206][195].":GOSUB1200 372 PRINT" [196]O YOU REMEMBER HOW TO TELL [195][207][205][193][204] 373 [153]"THAT OUR FUNCTION EXISTS? (null)URE YOU DO 374 PRINT"(IF YOU'VE BEEN KEEPING UP WITH THESE 375 [153]"LESSONS)! STR$O SO, NOW! (null)YPE '(null)(null)(null)': 376 GOSUB1160:GOSUB1300:X%=.:Y%=24:A$="[210][213][206]":GOSUB1600 377 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO377 378 GOSUB1500:IFK$<>CHR$(13)THEN378 379 GOSUB1700:GOSUB1700:PRINT"[197][206][196][160][193][212][160]0080";:GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150 380 PRINT"[144][145] 381 [153]" CHR$OOD! (null)OW LET'S TRY OUR ASC(null)(null)LENTION 382 PRINT"OUT! [212]RY '[208][210][201][206][212][160][198][193][195][212][207][210][201][193][204](4)': 383 [141]1160:X%[178].:Y%[178]24:A$[178]"(null)(null)RIGHT$(null)(null) ASCATNLEN(null)(null)(null)RIGHT$ATN(null)(4)":[141]1600 384 [139]E[167]A$[178][202](A$,E):E[178].:[141]1605:[137]384 385 [141]1500:[139]K$[179][177][199](13)[167]385 386 [141]1700:[153]"24";:[141]1700:[141]1700:[141]1035:[141]1150:[153]"STOPON 387 PRINT" [201]T SURE SEEMED TO WORK, DIDN'T IT? 388 [153]"(null)AYBE WE SHOULD TRY A COUPLE MORE:":[141]1205 389 [153]" LEFT$OW ABOUT WE COMPUTE THE VALUE OF 390 PRINT"'5!'? [212]YPE '[208][210][201][206][212][160][198][193][195][212][207][210][201][193][204](5)': 391 [141]1160:[141]1300:X%[178].:Y%[178]24:A$[178]"(null)(null)RIGHT$(null)(null) ASCATNLEN(null)(null)(null)RIGHT$ATN(null)(5)":[141]1600 392 [139]E[167]A$[178][202](A$,E):E[178].:[141]1605:[137]392 393 [141]1500:[139]K$[179][177][199](13)[167]393 394 [141]1700:[153]"120";:[141]1700:[141]1700:[141]1035:[141]1150:[153]"STOPON 395 PRINT" [200]MMM -- [201]F 4!=24, THEN 5![160]= 5*4! = 396 [153]"5*24 -- 5 * 4 IS 20 (CARRY THE 2) -- 397 PRINT"+ THE 2 IS -- [200]EY! [201]T'S [210][201][199][200][212]! 398 [153]" (null)ET'S TRY (null)(null)VALCLOSEMORE! LEFT$OW ABOUT, OH, 399 PRINT"DID [201] SAY 1 MORE? [207]KAY, DO '1!': 400 [141]1160:X%[178].:Y%[178]24:A$[178]"(null)(null)RIGHT$(null)(null) ASCATNLEN(null)(null)(null)RIGHT$ATN(null)(1)":[141]1600 401 [139]E[167]A$[178][202](A$,E):E[178].:[141]1605:[137]401 402 [141]1500:[139]K$[179][177][199](13)[167]402 403 [141]1700:[153]"0";:[141]1700:[141]1700:[141]1035:[141]1150:[141]1400 404 [153]" (null)H-OH. RIGHT$ DON'T THINK THAT'S RIGHT. 405 PRINT"'1!' SHOULD BE SIMPLY 1. [211]INCE 0 IS 406 [153]"NOT A POSITIVE INTEGER, THERE ARE NO 407 PRINT"POSITIVE INTEGERS LESS THAN 1 TO MUL- 408 [153]"TIPLY 1 BY! (null)HERE DID WE GO WRONG? 409 PRINT" [204]ET'S TAKE A CLOSER LOOK AT OUR 410 [153]"ASC(null)(null)LENTION. (null)EMEMBER HOW TO DO THAT? 411 PRINT"[202]UST TYPE '[204][201][211][212]': 412 [141]1160:[141]1300:X%[178].:Y%[178]24:A$[178]"(null)RIGHT$(null)(null)":[141]1600 413 [139]E[167]A$[178][202](A$,E):E[178].:[141]1605:[137]413 414 [141]1500:[139]K$[179][177][199](13)[167]414 415 [141]1700:[153]"0010 ASC(null)(null)LENCLOSEASCATNLEN(null)(null)(null)RIGHT$ATN(null)((null))";:[141]1700:[153]"ON 416 PRINT"0020 [198]:=[206]";:GOSUB1700:PRINT"[145] 417 [153]"0030 (null)VAL(null)VALATN(null)";:[141]1700:[153]"ON 418 PRINT"0040 [206]:=[206]-1";:GOSUB1700:PRINT"[145] 419 [153]"0050 ASC:=ASC*(null)";:[141]1700:[153]"ON 420 PRINT"0060 [213][206][212][201][204][160][206]<2";:GOSUB1700:PRINT"[145] 421 [153]"0070 (null)VAL(null)(null)(null)(null)CLOSEASC";:[141]1700:[153]"ON 422 PRINT"0080 [197][206][196][198][213][206][195] [198][193][195][212][207][210][201][193][204]";:GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150:GOSUB1400 423 PRINT:PRINT" [204]ET'S SEE. [204]INE 10 IS SIMPLY THE 424 [153]"ASC(null)(null)LEN STATEMENT TELLING US WE HAVE A 425 PRINT"[198][213][206][195]TION HERE THAT TAKES ONE ARGUMENT, 426 [153]"CALLED '(null)' WITHIN THE ASC(null)(null)LENTION BODY; 427 PRINT"AND [204]INE 80 IS THE [197][206][196][198][213][206][195] STATEMENT 428 [153]"WHICH MARKS THE END OF THE ASC(null)(null)LEN STRUC- 429 PRINT"TURE. [212]HEY ARE CORRECT. [212]HUS, WE'LL 430 [153]"CONCENTRATE ON THE ASC(null)(null)LENTION PEEKODY, IN 431 PRINT"LINES 20-70.":GOSUB1200 432 PRINT" [204]INE 70 IS THE [210][197][212][213][210][206][160]STATEMENT, 433 [153]"RIGHT$T TAKES THE VALUE 'ASC' WHICH WE HAVE 434 PRINT"COMPUTED AND [210][197][212][213][210][206]S IT TO THE CALLING 435 [153]"STATEMENT. (null)HAT LEAVES 20-60. 436 PRINT" [204]INE 20 SETS [198] TO A STARTING VALUE 437 [153]"OF (null), THE ARGUMENT TO THE ASC(null)(null)LENTION. 438 PRINT"[212]HUS, WHEN WE SAID [208][210][201][206][212][160][198][193][195][212][207][210][201][193][204](4), 439 [153]"(null) WAS 4, THUS ASC BECAME 4 AT LINE 20. 440 PRINT"[211]O FAR, SO GOOD!":GOSUB1200 441 PRINT" [204]INE 30 IS OUR [210][197][208][197][193][212][160]STATEMENT, 442 [153]"STARTING A (null)VAL(null)VALATN(null)CLOSESTRUCTURE. (null)INE 60 443 PRINT"IS THE [213][206][212][201][204] WHICH FINISHES THE [210][197][208][197][193][212] 444 [153]"STRUCTURE, AND DEFINES ITS ENDING CON- 445 PRINT"DITION. [204]INES 40 AND 50 FORM THE BODY 446 [153]"OF THE (null)VAL(null)VALATN(null) STRUCTURE. 447 PRINT" [204]INE 40 ASSIGNS TO [206] THE OLD VALUE 448 [153]"OF (null), WITH 1 SUBTRACTED. (null)HUS, WITH 449 PRINT"[206] FORMERLY EQUAL TO 4, [206] NOW EQUALS 3.":GOSUB1200 450 PRINT" [204]INE 50 DOES THE WORK! [201]T ASSIGNS 451 [153]"TO ASC THE PRODUCT OF THE OLD VALUE OF ASC 452 PRINT"AND THE VALUE OF [206] OBTAINED IN 40. 453 [153]"(null)HUS, ASC WAS 4 AND (null) IS NOW 3, SO ASC IS 454 PRINT"NOW 4*3, OR 12. 455 [153]" (null)INE 60 ASKS IF (null) IS LESS THAN 2. 456 PRINT"[215]ELL, [206] IS 3 AND 3 IS [206][207][212] LESS THAN 2, 457 [153]"SO THE RELATIONAL EXPRESSION '(null)<2' RE- 458 PRINT"RETURNS THE VALUE 0 ([198][193][204][211][197]).":GOSUB1200 459 PRINT" [212]HE 0 ISN'T ASSIGNED TO ANY VARIA- 460 [153]"BLE, BUT IS USED TO TELL THE (null)VAL(null)VALATN(null) 461 PRINT"STRUCTURE TO 'MAKE ANOTHER ROUND'. [211]O 462 [153]"BACK WE GO TO LINE 40. (null) BECOMES 2, ASC 463 PRINT"BECOMES 12*2 OR 24, 2 IS NOT LESS THAN 464 [153]"2, BACK AGAIN! (null) BECOMES 1, ASC BECOMES 465 PRINT"24*1 OR 24, [206][207][215][160][206] IS 1 WHICH [201][211][160]LESS 466 [153]"THAN 2, SO WE EXIT THE (null)VAL(null)VALATN(null) LOOP! 467 PRINT"[198]'S VALUE (24) IS [210][197][212][213][210][206]ED, [197][206][196] OF 468 [153]"ASC(null)(null)LENTION! (null)O WHAT'S WRONG?":[141]1200 469 [153]" RIGHT$F YOU'LL REMEMBER, WE HAD NO PROB- 470 PRINT"LEMS WITH 4 (OR 5), SO LET'S TRY THE, 471 [153]"ER, 1 WE STR$RIGHT$STR$ HAVE PROBLEMS WITH! ATNT 472 PRINT"[204]INE 10, [206] IS 1. [193]T [204]INE 20, [198] IS 1. 473 [153]"(null)INE 30 STARTS THE (null)VAL(null)VALATN(null). (null)INE 40 474 PRINT"MAKES [206] EQUAL TO 0, [204]INE 50 MAKES [198] 475 [153]"EQUAL TO 1*0 -- (null)LEFT$!! (null)(null)(null)CLOSERIGHT$ SEE! ASC IS 476 PRINT"NOW 0, 0 IS LESS THAN 2, LEAVE THE [210][197]- 477 [153]"(null)VALATN(null)CLOSESTRUCTURE, (null)VAL(null)(null)(null)(null) 0, VAL(null)STR$ASC(null)(null)LEN! 478 PRINT"[207]-[203][193][217]! [206]OW, WHAT DO WE [196][207] ABOUT IT?":GOSUB1200 479 PRINT" [196]UE TO THE WAY [198]ACTORIAL IS USED IN 480 [153]"(null)ERMUTATION/LENOMBINATION CALCULATIONS, 481 PRINT"'0!' IS DEFINED TO BE 1, EVEN THOUGH 0 482 [153]"IS NOT A POSITIVE INTEGER. (null)O, WE 483 PRINT"NEED TO SPECIFY BOTH 0! AND 1! AS 484 [153]"SPECIAL CASES, EACH (null)VAL(null)(null)(null)(null)ING 1. (null)O 485 PRINT"DO THIS, WE WILL USE AN [201][198]/[197][204][201][198]/[197][204][211][197]/ 486 [153]"VAL(null)STR$RIGHT$ASC STRUCTURE TO ISOLATE CASES WHERE 487 PRINT"[206] IS 0 OR 1. [194]UT WHERE WILL WE PUT 488 [153]"THE RIGHT$ASCCLOSESTRUCTURE?":[141]1200 489 [153]" (null)OOK AT OUR LISTING. RIGHT$F WE PUT: 490 PRINT" [201][198][160][206]=0[160][212][200][197][206] 491 [153]" (null)VAL(null)(null)(null)(null)CLOSE1 492 PRINT" [197][204][201][198][160][206]=1 [212][200][197][206] 493 [153]" (null)VAL(null)(null)(null)(null)CLOSE1 494 PRINT" [197][204][211][197] 495 [153]"AT THE BEGINNING OF THE ASC(null)(null)LENTION BODY, 496 PRINT"JUST AFTER THE [198][213][206][195], AND WE ALSO PUT:":GOSUB1200 497 PRINT" [197][206][196][201][198] 498 [153]"AT THE VAL(null)STR$ OF THE ASC(null)(null)LENTION BODY, JUST 499 PRINT"BEFORE THE [197][206][196][198][213][206][195], THAT MIGHT DO IT. 500 [153]"PEEKUT HOW? 501 PRINT" [206]OTICE THAT THE LINE NUMBERS [193][213][212][207] 502 [153]"GAVE US WERE INCREMENTED BY 10. (null)HIS 503 PRINT"LEAVES US ROOM TO INSERT LINES AS NEC- 504 [153]"ESSARY.":[141]1200 505 [153]" (null)YPE IN THE FOLLOWING LINES, LINE 506 PRINT"NUMBERS AND ALL: 507 [153]" 11 RIGHT$ASCCLOSE(null)=0 (null)LEFT$VAL(null) 508 PRINT" 12 [210][197][212][213][210][206] 1 509 [153]" 13 VAL(null)RIGHT$ASCCLOSE(null)=1 (null)LEFT$VAL(null) 510 PRINT" 14 [210][197][212][213][210][206] 1 511 [153]" 15 VAL(null)(null)VAL 512 PRINT" 75 [197][206][196][201][198] 513 [141]1160:[141]1300:X%[178].:Y%[178]24:A$[178]"11 RIGHT$ASC (null)=0 (null)LEFT$VAL(null)":[141]1600 514 [139]E[167]A$[178][202](A$,E):E[178].:[141]1605:[137]514 515 [141]1500:[139]K$[179][177][199](13)[167]515 516 [141]1700:[141]1035:[141]1150:[153]"STOPON 517 GOSUB1160:X%=.:Y%=24:A$="12 [210][197][212][213][210][206] 1":GOSUB1600 518 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO518 519 GOSUB1500:IFK$<>CHR$(13)THEN519 520 GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[144][145] 521 [141]1160:X%[178].:Y%[178]24:A$[178]"13 VAL(null)RIGHT$ASC (null)=1 (null)LEFT$VAL(null)":[141]1600 522 [139]E[167]A$[178][202](A$,E):E[178].:[141]1605:[137]522 523 [141]1500:[139]K$[179][177][199](13)[167]523 524 [141]1700:[141]1035:[141]1150:[153]"STOPON 525 GOSUB1160:X%=.:Y%=24:A$="14 [210][197][212][213][210][206] 1":GOSUB1600 526 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO526 527 GOSUB1500:IFK$<>CHR$(13)THEN527 528 GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[144][145] 529 [141]1160:X%[178].:Y%[178]24:A$[178]"15 VAL(null)(null)VAL":[141]1600 530 [139]E[167]A$[178][202](A$,E):E[178].:[141]1605:[137]530 531 [141]1500:[139]K$[179][177][199](13)[167]531 532 [141]1700:[141]1035:[141]1150:[153]"STOPON 533 GOSUB1160:X%=.:Y%=24:A$="75 [197][206][196][201][198]":GOSUB1600 534 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO534 535 GOSUB1500:IFK$<>CHR$(13)THEN535 536 GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[144][145]":GOSUB1400 537 PRINT" [212]HE LINES YOU JUST TYPED WERE IN- 538 [153]"SERTED INTO THE PROGRAM IN MEMORY, IN 539 PRINT"SUCH A WAY THAT THE LINES ARE ALL IN 540 [153]"NUMERIC ORDER. (null)HUS, LINES 11-15 WERE 541 PRINT"PLACED BETWEEN 10 AND 20, AND LINE 75 542 [153]"GOES BETWEEN 70 AND 80. (null)O SEE WHAT 543 PRINT"THE WHOLE THING NOW LOOKS LIKE, JUST 544 [153]"(null)RIGHT$(null)(null) THE PROGRAM. 545 GOSUB1160:GOSUB1300:X%=.:Y%=24:A$="[204][201][211][212]":GOSUB1600 546 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO546 547 GOSUB1500:IFK$<>CHR$(13)THEN547 548 GOSUB1700:PRINT"0010 [198][213][206][195][160][198][193][195][212][207][210][201][193][204]([206])";:GOSUB1700:PRINT"[145] 549 [153]"0011 RIGHT$ASCCLOSE(null)=0 (null)LEFT$VAL(null)";:[141]1700:[153]"ON 550 PRINT"0012 [210][197][212][213][210][206] 1";:GOSUB1700:PRINT"[145] 551 [153]"0013 VAL(null)RIGHT$ASCCLOSE(null)=1 (null)LEFT$VAL(null)";:[141]1700:[153]"ON 552 PRINT"0014 [210][197][212][213][210][206] 1";:GOSUB1700:PRINT"[145] 553 [153]"0015 VAL(null)(null)VAL";:[141]1700:[153]"ON 554 PRINT"0020 [198]:=[206]";:GOSUB1700:PRINT"[145] 555 [153]"0030 (null)VAL(null)VALATN(null)";:[141]1700:[153]"ON 556 PRINT"0040 [206]:=[206]-1";:GOSUB1700:PRINT"[145] 557 [153]"0050 ASC:=ASC*(null)";:[141]1700:[153]"ON 558 PRINT"0060 [213][206][212][201][204][160][206]<2";:GOSUB1700:PRINT"[145] 559 [153]"0070 (null)VAL(null)(null)(null)(null)CLOSEASC";:[141]1700:[153]"ON 560 PRINT"0075 [197][206][196][201][198]";:GOSUB1700:PRINT"[145] 561 [153]"0080 VAL(null)STR$ASC(null)(null)LEN ASCATNLEN(null)(null)(null)RIGHT$ATN(null)";:[141]1700:[141]1700:[141]1035:[141]1150:[153]"STOPON 562 PRINT" [211]EEMS TO BE ALL THERE!":GOSUB1205 563 PRINT" [217]OU CAN'T SEE THE WHOLE THING AT 1 564 [153]"TIME ON MY LITTLE 'SCREEN' DOWN THERE, 565 PRINT"BUT YOU [195][193][206] SEE THE [197][204][211][197][160]AND [197][206][196][201][198] 566 [153]"STATEMENTS. (null)OTICE HOW LEN(null)(null)ATN(null) FURTHER 567 PRINT"INDENTED THE OTHER LINES TO SHOW THAT 568 [153]"THEY ARE INSIDE THE RIGHT$ASC STRUCTURE. RIGHT$N 569 PRINT"ADDITION, NOTE THAT WE HAVE A [210][197][208][197][193][212] 570 [153]"STRUCTURE WITHIN AN RIGHT$ASCCLOSESTRUCTURE IN- 571 PRINT"SIDE A [198][213][206][195]TION STRUCTURE. [195][207][205][193][204] HAS 572 [153]"NO LIMIT ON THE DEPTH OF SUCH NESTING.":[141]1200 573 [153]" ASCOR NOW, LET'S TEST IT. (null)INCE WE 574 PRINT"HAVE MADE A CHANGE, WE MUST RE-INFORM 575 [153]"LEN(null)(null)ATN(null) ABOUT THE ASC(null)(null)LENTION. STR$O SO NOW: 576 GOSUB1160:GOSUB1300:X%=.:Y%=24:A$="[210][213][206]":GOSUB1600 577 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO577 578 GOSUB1500:IFK$<>CHR$(13)THEN578 579 GOSUB1700:GOSUB1700:PRINT"[197][206][196][160][193][212][160]0080";:GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[144][145] 580 [153]"(null)OW COMPUTE '1!': 581 GOSUB1160:X%=.:Y%=24:A$="[208][210][201][206][212] [198][193][195][212][207][210][201][193][204](1)":GOSUB1600 582 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO582 583 GOSUB1500:IFK$<>CHR$(13)THEN583 584 GOSUB1700:PRINT"1";:GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[144][145] 585 [153]"(null)OOKIN' GOOD! (null)RY '0!', ALSO: 586 GOSUB1160:X%=.:Y%=24:A$="[208][210][201][206][212] [198][193][195][212][207][210][201][193][204](0)":GOSUB1600 587 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO587 588 GOSUB1500:IFK$<>CHR$(13)THEN588 589 GOSUB1700:PRINT"1";:GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[144][145] 590 [153]"CHR$OOD! PEEKOTH OUR SPECIAL CASES SEEM TO WORK FINE!":[141]1205 591 [153]" MID$UST TO BE SURE, LET'S TRY TO GET 592 PRINT"THE [198]ACTORIAL OF A NON-SPECIAL CASE, 593 [153]"SAY, OH, '6!'. 594 GOSUB1160:GOSUB1300:X%=.:Y%=24:A$="[208][210][201][206][212] [198][193][195][212][207][210][201][193][204](6)":GOSUB1600 595 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO595 596 GOSUB1500:IFK$<>CHR$(13)THEN596 597 GOSUB1700:PRINT"720";:GOSUB1700:GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[144][145] 598 [153]" LEFT$MMM... RIGHT$F 5! IS 120, THEN 6! IS 599 PRINT"5!*6, OR 120*6. 20*6=20 (CARRY THE 1) 600 [153]"AND 100*6 PLUS THE 100 CARRIED IS 700, 601 PRINT"700+20, AH! 720! [215]ELL, OUR [198]ACTORIAL 602 [153]"ASC(null)(null)LENTION SEEMS TO WORK AS ADVERTISED!":[141]1205 603 [153]" (null)ET'S (null)ATN(null)VAL WHAT WE HAVE SO IT WILL 604 PRINT"BE HERE FOR OUR NEXT LESSON. [212]YPE: 605 [153]" (null)ATN(null)VAL "Q$"LEN.ASC.ASCATNLEN(null)(null)(null)RIGHT$ATN(null)"Q$" 606 GOSUB1160:GOSUB1300:X%=.:Y%=24:A$="[211][193][214][197] "+Q$+"[195].[198].[198][193][195][212][207][210][201][193][204]"+Q$:GOSUB1600 607 IFETHENA$=MID$(A$,E):E=.:GOSUB1605:GOTO607 608 GOSUB1500:IFK$<>CHR$(13)THEN608 609 GOSUB1700:S=6:GOSUB2000:GOSUB1700:GOSUB1035:GOSUB1150:PRINT"[144][145] 610 [153]" CHR$EE, RIGHT$ ALMOST HATE TO DO THIS TO 611 PRINT"YOU! [212]HAT [198][213][206][195]TION YOU JUST [211][193][214][197]D 612 [153]"STILL HAS A COUPLE OF POTENTIAL PROB- 613 PRINT"LEMS! [205]ORE NEXT LESSON.":GOSUB1205 614 PRINT" [212]HIS LESSON, WE IMPLEMENTED A [198][213][206][195]- 615 [153]"TION THAT DID MORE THAN A SIMPLE COMP- 616 PRINT"UTATION. [212]O IMPLEMENT IT, WE LEARNED 617 [153]"AND USED TWO NEW STRUCTURES, THE (null)LEFT$RIGHT$(null)VAL 618 PRINT"AND THE [201][198] STRUCTURE, REPRESENTATIVES 619 [153]"OF TWO NEW LEN(null)ATN(null)(null)VAL(null) OF STRUCTURES, THE 620 PRINT"[204]OOPING AND [195]ONDITIONAL. [215]E HAD OUR 621 [153]"FIRST TASTE OF DEBUGGING A FAULTY PRO- 622 PRINT"GRAM, AND OF INSERTING NEW LINES INTO 623 [153]"AN EXISTING PROGRAM.":[141]1200 624 [153]" (null)EXT LESSON, WE WILL COVER THE 625 PRINT"OTHER [195]ONDITIONAL [211]TRUCTURE AND THE 626 [153]"OTHER TWO (null)OOPING (null)TRUCTURES, IN AD- 627 PRINT"DITION TO THE OTHER [211]UBPROGRAM [211]TRUC- 628 [153]"TURE. (null)E WILL LEARN HOW A 'LEAKING' 629 PRINT"SUBPROGRAM MAY BE [195][204][207][211][197][196]. [198]OR EXTRA 630 [153]"CREDIT, GET OUT YOUR LEN(null)(null)ATN(null) 0.14 DISK 631 PRINT"AND EXAMINE '[195].[198].[198][193][195][212][207][210][201][193][204]' ON THIS 632 [153]"SIDE, AND TRY TO FIND THE TWO POTEN- 633 PRINT"TIAL PROBLEMS [201] MENTIONED!":GOSUB1200 700 PRINT" [210]EADY TO PLAY [212]WENTY [209]UESTIONS? 701 [153]"ATNCTUALLY, THERE ARE ONLY 10. RIGHT$'LL ASK 702 PRINT"'EM, [217][207][213] ANSWER 'EM. [212]HEY MAY BE [205]UL- 703 [153]"TIPLE-LENHOICE OR (null)RUE/ASCALSE. (null)IMPLY 704 PRINT"READ THE QUESTIONS AND CHOICES [195][193][210][197]- 705 [153]"ASC(null)(null)(null)(null), THEN PRESS THE KEY (LEGAL KEY- 706 PRINT"STROKES ARE IN  INVERSE [146] SO YOU'LL 707 [153]"KNOW WHICH THEY ARE) CORRESPONDING TO 708 PRINT"YOUR CHOICE.":GOSUB1200 709 PRINT"1. [193][160][198][213][206][195]TION DEFINITION MAY CON- 710 [153]"TAIN MORE THAN ONE (null)VAL(null)(null)(null)(null) STATEMENT: 711 PRINT"  [212] [146]RUE OR  [198] [146]ALSE? 712 A$[178]"(null)":W1$[178]"ASC":W2$[178]"ASC":W3$[178]"ASC":[141]1800 713 [153]"(null)EMEMBER, A ASC(null)(null)LENTION DEFI- 714 PRINT"NITION MUST CONTAIN [193][212][160][204][197][193][211][212][160]1 [210][197][212][213][210][206] 715 [153]"STATEMENT, OR THERE WON'T BE A VALUE 716 PRINT"FOR THE [198][213][206][195]TION TO [210][197][212][213][210][206]!":GOSUB1205 717 PRINT"2. [215]HICH OF THE FOLLOWING IS [206][207][212] THE 718 [153]"NAME OF A STRUCTURE? 719 PRINT"  [193] [146] [198][213][206][195]":PRINT"  [194] [146] [201][198] 720 [153]"  LEN WAIT VAL(null)(null)VAL":[153]"  STR$ WAIT (null)LEFT$RIGHT$(null)VAL 721 A$="[195]":W1$="[193]":W2$="[194]":W3$="[196]":GOSUB1800 722 PRINT"[212]HE [201][198], [198][213][206][195] AND [215][200][201][204][197] ARE 723 [153]"STATEMENTS THAT CAN BEGIN A STRUCTURE. 724 PRINT"[197][204][211][197] IS A PART OF THE [201][198] STRUCTURE.":GOSUB1205 725 PRINT"3. [193] [210][197][208][197][193][212][160]STRUCTURE [210][197][208][197][193][212]S THE 726 [153]"STATEMENTS IN THE (null)VAL(null)VALATN(null)CLOSEPEEKODY (null)(null)(null)RIGHT$(null) A 727 PRINT"GIVEN CONDITION BECOMES [198]ALSE. 728 [153]"  (null) WAITRUE OR  ASC WAITALSE? 729 A$="[198]":W1$="[212]":W2$="[212]":W3$="[212]":GOSUB1800 730 PRINT"[212]HE STATEMENTS IN THE [210][197]- 731 [153]"(null)VALATN(null)CLOSEPEEKODY ARE (null)VAL(null)VALATN(null)ED (null)(null)(null)RIGHT$(null)CLOSETHE GIVEN 732 PRINT"CONDITION BECOMES [212]RUE, NOT [198]ALSE!":GOSUB1205 733 PRINT"4. [201]S AN [197][204][201][198] CLAUSE LEGAL WITHIN A 734 [153]"(null)VAL(null)VALATN(null)CLOSE(null)OOP? 735 PRINT"  [193] [146] [217]ES, ONLY WITHIN A NESTED [201][198] 736 [153]"  PEEKCLOSEWAIT (null)ES, ANYWHERE AFTER (null)VAL(null)VALATN(null) 737 PRINT"  [195] [146] [217]ES, ONLY WITHIN NESTED [198][213][206][195] 738 [153]"  STR$ WAIT (null)O WAY, MID$OSE! 739 A$="[193]":W1$="[194]":W2$="[195]":W3$="[196]":GOSUB1800 740 PRINT"[197][204][201][198] IS AN OPTIONAL PART 742 [153]"OF RIGHT$ASC, WHICH CAN BE NESTED IN (null)VAL(null)VALATN(null)!":[141]1205 743 [153]"5. (null)NLY ONE (null)VAL(null)(null)(null)(null)CLOSESTATEMENT CAN BE 744 PRINT"ACTUALLY [197][216][197][195][213][212][197][196] WITHIN A GIVEN CALL 745 [153]"OF A ASC(null)(null)LENTION. 746 PRINT"  [212] [146]RUE OR  [198] [146]ALSE 747 A$[178]"(null)":W1$[178]"ASC":W2$[178]"ASC":W3$[178]"ASC":[141]1800 748 [153]"RIGHT$NDEED, ONLY ONE VALUE MAY 749 PRINT"BE [210][197][212][213][210][206]ED BY A [198][213][206][195]TION PER CALL, SO 750 [153]"(null)VAL(null)(null)(null)(null) ACTUALLY VAL(null)RIGHT$(null)S THE ASC(null)(null)LENTION AS 751 PRINT"WELL AS [210][197][212][213][210][206]S THE VALUE!":GOSUB1205 752 PRINT"6. [215]HICH OF THE FOLLOWING IS A [211]UB- 753 [153]"PROGRAM (null)TRUCTURE? 754 PRINT"  [193] [146] [201][198] 755 [153]"  PEEK WAIT ASC(null)(null)LEN 756 PRINT"  [195] [146] [210][197][208][197][193][212] 757 A$[178]"PEEK":W1$[178]"ATN":W2$[178]"LEN":W3$[178]"LEN":[141]1800 758 [153]"(null)INCE A ASC(null)(null)LENTION IS A LIKE 759 PRINT"A PROGRAM WITHIN A PROGRAM, IT IS OF 760 [153]"THE (null)UBPROGRAM CLASS.":[141]1205 761 [153]"7. (null)HICH OF THE FOLLOWING IS A LENON- 762 PRINT"DITIONAL [211]TRUCTURE? 763 [153]"  ATN WAIT RIGHT$ASC 764 PRINT"  [194] [146] [198][213][206][195] 765 [153]"  LEN WAIT (null)VAL(null)VALATN(null) 766 A$="[193]":W1$="[194]":W2$="[195]":W3$="[195]":GOSUB1800 767 PRINT"[211]INCE [201][198][160]SELECTS WHETHER 768 [153]"TO EXECUTE SOME STATEMENTS CONDITION- 769 PRINT"ALLY, IT IS OF THE [195]ONDITIONAL CLASS.":GOSUB1205 770 PRINT"8. [215]HICH OF THE FOLLOWING IS A [204]OOP- 771 [153]"ING (null)TRUCTURE? 772 PRINT"  [193] [146] [201][198] 773 [153]"  PEEK WAIT ASC(null)(null)LEN 774 PRINT"  [195] [146] [210][197][208][197][193][212] 775 A$[178]"LEN":W1$[178]"ATN":W2$[178]"PEEK":W3$[178]"PEEK":[141]1800 776 [153]"(null)INCE (null)VAL(null)VALATN(null) LOOPS THROUGH 777 PRINT"A GROUP OF STATEMENTS [210][197][208][197][193][212]EDLY, IT 778 [153]"OF THE (null)OOPING CLASS.":[141]1205 779 [153]"9. (null)HICH IS (null)(null)(null)CLOSEA LEGAL (null)TRUCTURE 780 PRINT"[212]ERMINATOR? 781 [153]"  ATN WAIT (null)(null)(null)RIGHT$(null) 782 PRINT"  [194] [146] [197][206][196][201][198] 783 [153]"  LEN WAIT VAL(null)STR$ASC(null)(null)LEN 784 PRINT"  [196] [146] [197][206][196][210][197][208][197][193][212] 785 A$[178]"STR$":W1$[178]"ATN":W2$[178]"PEEK":W3$[178]"LEN":[141]1800 786 [153]"(null)HE TERMINATOR FOR THE (null)VAL- 787 PRINT"[208][197][193][212][160][204]OOP IS [213][206][212][201][204], NOT [197][206][196][210][197][208][197][193][212]. [201]N 788 [153]"FACT, THERE IS NO VAL(null)STR$(null)VAL(null)VALATN(null)CLOSESTATEMENT!":[141]1205 789 [153]"10. (null)HY DOES ATN(null)(null)(null)CLOSENUMBER LINES IN 790 PRINT"INCREMENTS OF 10 INSTEAD OF 1? 791 [153]"  ATN WAIT LEFT$UMANS HAVE 10 FINGERS. 792 PRINT"  [194] [146] [212]O LEAVE ROOM FOR INSERTS. 793 [153]"  LEN WAIT (null)HE 0'S LOOK PRETTY. 794 PRINT"  [196] [146] [206]ONE OF THE ABOVE. 795 A$[178]"PEEK":W1$[178]"ATN":W2$[178]"LEN":W3$[178]"STR$":[141]1800 796 [153]"RIGHT$T'S NICE TO HAVE ROOM IF 797 PRINT"YOU NEED TO INSERT NEW LINES!":GOSUB1205 800 PRINT" [215]ELL, THAT'S THE END OF OUR LITTLE 801 [153]"QUIZ. (null)F THE 10 QUESTIOND GIVEN, YOU 802 PRINT"ANSWERED"SC%"CORRECTLY! 803 [139]SC%[178]10[167][153]" ATN (null)VAL(null)ASCVALLEN(null)CLOSE(null)LEN(null)(null)VAL! (null)OU'RE DEFINITELY":[137]810 804 [139]SC%[179]7[167]807 805 [153]" (null)OT TOO SHABBY! (null)OU MIGHT WANT TO 806 PRINT"RE-TAKE THIS LESSON, SO THAT YOU'LL BE":GOTO810 807 PRINT" [195]OULD BE BETTER. [201] SUGGEST YOU":GOTO806 810 PRINT"READY FOR THE NEXT LESSON!" 900 PRINT"[208]RESS SPACE BAR TO RETURN TO [204]OADSTAR!":GOSUB1300:POKE198,.:WAIT198,1 901 POKE198,.:GOSUB1400:POKEV+33,.:PRINT"[147][144]LOAD"Q$"HELLO"Q$",8":PRINT"RUN" 902 PRINT"[210]ETURNING TO MAIN MENU . . .[144]"; 903 POKE927,0: REM _ MENU.SP1 904 POKE631,13:POKE632,13:POKE198,2:END: 950 CL=PEEK(61)+256*PEEK(62)+1:BL=PEEK(43):BH=PEEK(44):CL%=CL+65536*(CL>32767) 955 POKE43,CL%AND255:POKE44,CL/256:RETURN: 960 POKE43,BL:POKE44,BH:RETURN: 999 END: 1000 POKEV+33,1:PRINT"[147] [195][207][205][193][204][160]0.14 [212]UTORIAL " 1005 PRINT"[144][176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]";:FORI=1TO10 1010 PRINT"[221] [221]";:NEXT: 1015 PRINT"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189] 1020 X%[178].:Y%[178]13:[141]1100:[129]I[178]1[164]11:[153]" "; 1025 [130]:[141]1050 1030 [129]I[178]217[164]242:[151]I,[194](I)[176]128:[130]: 1035 [151]1020,2:[151]1021,11:[151]1022,1:[151]1023,38:[142]: 1050 X%[178].:Y%[178]24:[141]1110:[153]" WAIT"; 1055 [151]2023,160:[151]56295,6:[142]: 1100 [141]1160 1110 [151]212,.:[153][200]("",Y%[170]1)[163]X%);:[142]: 1150 X%[178]SX%:Y%[178]SY%:[137]1110 1160 SX%[178][194](211):SY%[178][194](214):[142] 1200 [141]1300 1205 X%[178]3:Y%[178]13:[141]1110:[153]"FOR (null)RESS SPACE BAR FOR NEXT PAGE. " 1210 [151]198,.:[146]198,1:[151]198,. 1215 X%[178]3:Y%[178]13:[141]1110:[153]" " 1220 [137]1400 1300 [151]646,15:[146]R,C:[146]R,C:[158]CL:[151]646,12:[146]R,C:[146]R,C:[158]CL 1305 [151]646,11:[146]R,C:[146]R,C:[158]CL:[151]646,.:[146]R,C:[146]R,C:[158]CL:[142]: 1400 [151]646,11:[146]R,C:[146]R,C:[158]CL:[151]646,12:[146]R,C:[146]R,C:[158]CL 1405 [151]646,15:[146]R,C:[146]R,C:[158]CL:[146]R,C:[146]R,C:[158]WI:[142]: 1500 [141]1110:F%[178][171]1:L%[178][194](209)[170]256[172][194](210)[170][194](211):C%[178][194](L%) 1505 [151]L%,[171]F%[172]([194](L%)[175]127)[171]([168]F%)[172]([194](L%)[176]128):F%[178][168]F% 1510 [129]F[178]1[164]48:[161]K$:[139]K$[178]""[167][130]:[137]1505 1512 [139]K$[178]"CLOSE"[176]K$[178][199](148)[167]K$[178]" ":[143] SHIFT-SPACE TO SPACE! 1515 F[178]256:[130]:[151]L%,C%:[139]K$[177]"@"[175]K$[179]"["[167]K$[178][199]([198](K$)[170]128) 1520 [142]: 1600 AX%[178]X%:AY%[178]Y% 1605 [129]A[178]1[164][195](A$) 1606 [141]1500:[139]K$[178]"INPUT"[167][153]""[202](A$,A);:A[178][195](A$):X%[178]AX%[170]A:[130]:[142]: 1607 [139]K$[178][202](A$,A,1)[167][153]""K$;:X%[178]X%[170]1:[130]:[142]: 1608 [139]K$[178][199](13)[167]1606 1610 E[178]A:E$[178][202](A$,E,1):A[178]256:[130]: 1615 [153]"";:[151]216,1:[153]K$;:[151]212,.:[141]1150 1620 [151]V[170]32,8:[153]"FOR (null)(null)(null)(null)! (null)OU DIDN'T PRESS THE WAIT "E$;:[151]212,0 1621 [151]V[170]32,8:[153]"  KEY! " 1622 [141]1900:[141]1150:[151]V[170]32,5 1625 [153]" (null)OW PRESS THE [RIGHT$(null)(null)(null)-STR$VAL(null)] KEY ONCE: WAIT ":X%[178]AX%[170]E:Y%[178]AY% 1630 [141]1500:[139]K$[179][177]""[167]1630 1632 [153]"CMD CMD"; 1635 [141]1150:[153]" (null)OW FINISH TYPING! WAIT ":[151]V[170]32,14 1640 AX%[178]AX%[170]E[171]1:X%[178]AX%:Y%[178]AY%:[142]: 1700 [151]1020,14:[151]1021,24:[151]1022,.:[151]1023,39 1705 [158]SU:[141]1050:X%[178].:Y%[178]24:[137]1110: 1800 [141]1160:[141]1300 1805 X%[178].:Y%[178]24:[141]1500:[139]K$[179][177]A$[175]K$[179][177]W1$[175]K$[179][177]W2$[175]K$[179][177]W3$[167]1805 1810 [141]1035:[141]1150:[153]"ON 1815 IFK$=A$THENPRINT" [195][207][210][210][197][195][212]! [146][144] ";:SC%=SC%+1:RETURN: 1820 PRINT" [211]ORRY. [146][144] ";:RETURN: 1900 FORP=1TO2000:NEXT:RETURN: 2000 OPEN15,8,15:OPEN8,8,8,"#":PRINT#15,"U1:8 0 18 0":FORI=.TO100:NEXT 2005 FORJ=1TOS:T=INT(RND(1)*6)+18:FORK=1TOINT(RND(1)*5)+3:PRINT#15,"U1:8".T. 2010 POKE198,.:FORI=.TO50:IFPEEK(198)THENI=50:K=100:J=S 2015 NEXT:NEXT:NEXT:CLOSE8:CLOSE15:RETURN: